home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 10 / The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso / PC_SIGCD / 10 / 9 / DISK1095.ZIP / PAYBILLS.PRG < prev    next >
Text File  |  1987-02-21  |  4KB  |  117 lines

  1. * PAYBILLS
  2. * PROCESS ACCOUNTS PAYABLE FILE AND UPDATE EXPENSE AND MISC. ACCOUNTS
  3. SET HEADING OFF
  4. SET SAFETY OFF
  5. SET STATUS OFF
  6. CLEAR
  7. CLEAR ALL
  8. SET TALK OFF
  9. SET BELL OFF
  10. * SET UP A STRING OF 80 BLANKS
  11. STORE SPACE(80) TO BLANK
  12. @ 1,22 SAY "SMITH'S BIKEWORKS INFORMATION SYSTEM"
  13. @ 3,19 SAY ">> Accounting System Bill Payer Program <<"
  14. @ 5,29 SAY "Today's Date: "
  15. ?? DATE()
  16. STORE "ALL   " TO ACCOUNT
  17. STORE "01/01/00" TO PAYDATE
  18. STORE "ALL PAYEES               " TO PAYTO
  19. @ 9,1 SAY "Process PAYABLES for account number " GET ACCOUNT
  20. @ 11,1 SAY "Examine only bills DUE AFTER        " GET PAYDATE
  21. STORE CTOD(PAYDATE) TO PAYDATE
  22. @ 13,1 SAY "Examine only bills FROM " GET PAYTO
  23. STORE " " TO DUMMY
  24. @ 21,1 SAY ;
  25. "REPLACE VALUES AT CURSOR, OR JUST PRESS ENTER IF CURRENT DESCRIPTION"
  26. @ 22,1 SAY ;
  27. "IS O.K.  'M' HERE RETURNS TO MENU, ANY OTHER KEY STARTS THE PROGRAM =>";
  28. GET DUMMY
  29. READ
  30. STORE UPPER(DUMMY) TO DUMMY
  31. IF DUMMY="M"
  32.    RETURN
  33. ENDIF
  34. * OPEN PAYABLES FILE
  35. USE PAYFILE INDEX PFACTNO
  36. SET INDEX TO PFACTNO
  37. *OPEN LEDGER
  38. SELECT B
  39. USE ACCTCHRT INDEX ACCOUNT
  40. SET INDEX TO ACCOUNT
  41. * EXAMINE BILLS SELECTING RECORDS AS SPECIFIED BY DEFAULTS OR SCREEN INPUTS
  42. SELECT A
  43. GO TOP
  44. STORE " " TO ACTION
  45. DO WHILE ACTION<>"M"
  46.  IF (ACCT_NUM=VAL(ACCOUNT).OR.ACCOUNT="ALL").AND.(DATE_DUE>PAYDATE) ;
  47.       .AND..NOT.DELETE().AND.(PAYTO="ALL PAYEES".OR.PAYEE=PAYTO)
  48.       STORE 7 TO COUNT
  49.       DO WHILE COUNT<=23
  50.          @ COUNT,0 SAY BLANK
  51.          STORE COUNT+1 TO COUNT
  52.       ENDDO
  53. * DISPLAY PAYABLE DATA, THEN INPUT CHECK INFORMATION
  54.       STORE "    " TO CHECKNO
  55.       STORE 0.00 TO AMNTPD
  56.       STORE " " TO ACTION
  57.       STORE DATE() TO DATEPD
  58.       @ 9,0 SAY " "
  59.       ?? "Account Number :",A->ACCT_NUM,"    Date Recorded :",A->DATE_RECD
  60.       ?
  61.       ?  " Payee :", A->PAYEE, "  $",A->AMOUNT,"  Last Update :",;
  62.       A->LAST_UPDT
  63.       ?
  64.       ?  " Ref :",A->REFERENCE
  65.       @ 15,1 SAY "Paid With Check Number " GET CHECKNO
  66.       @ 15,34 SAY "Amount Paid " GET AMNTPD
  67.       @ 15,60 SAY "Date Paid " GET DATEPD
  68.       @ 18,1 SAY;
  69.       "TYPE REQUESTED DATA AT CURSOR. PRESS ENTER KEY TO MOVE TO NEXT"
  70.       @ 19,1 SAY "FIELD. TYPE 'P' TO POST, 'M' FOR MENU, ANYTHING ELSE"+;
  71.       " TO SKIP ENTRY => " GET ACTION
  72.       READ
  73.       STORE UPPER(ACTION) TO ACTION
  74. * POST TRANSACTION TO LEDGER IF INPUT IS "P"
  75.       IF ACTION="P"
  76.          SELECT B
  77.          STORE STR(A->ACCT_NUM,6,2) TO TEMP
  78.          FIND &TEMP
  79.          IF (EOF() .OR. BOF())
  80.             STORE " " TO ACTION
  81.             @ 22,1 SAY ;
  82.             "*** ERROR: THERE IS NO LEDGER ACCOUNT WITH THIS ACCOUNT NUMBER"
  83.             @ 23,1 SAY "    PRESS ANY KEY TO CONTINUE " GET ACTION
  84.             READ
  85. * LEDGER RECORD FOUND, SO DO UPDATE
  86.          ELSE
  87. * CONSTRUCT MONTHn VARIABLE NAME
  88.             STORE DTOC(DATEPD) TO DATEPAID
  89.             IF VAL(SUBSTR(DATEPAID,1,2))>9
  90.                STORE SUBSTR(DATEPAID,1,2) TO MONTH
  91.             ELSE
  92.                STORE SUBSTR(DATEPAID,2,1) TO MONTH
  93.             ENDIF
  94.             STORE "MONTH"+MONTH TO MONTH
  95.             REPLACE ACCT_YTD WITH B->ACCT_YTD+AMNTPD,&MONTH WITH ;
  96.             &MONTH+AMNTPD,LAST_UPDT WITH DATE()
  97. * UPDATE DATE, AMOUNT, CHECK NUMBER IN TRANSACTION, THEN FLAG AS DELETED
  98.             SELECT A
  99.             STORE DATE() TO DATEPD
  100.             REPLACE DATE_PAID WITH DATEPD, CHECK_NUM WITH CHECKNO,;
  101.             AMOUNT WITH A->AMOUNT-AMNTPD
  102.             SELECT A
  103.             DELETE
  104.          ENDIF
  105.       ENDIF
  106.    ENDIF
  107. * ADVANCE TO NEXT REC, CHECK TO SEE IF AT END
  108.    SELECT A
  109.    STORE RECNO() TO RECNOW
  110.    SKIP 1
  111.    IF EOF()
  112.       STORE "M" TO ACTION
  113.    ENDIF
  114. ENDDO
  115. CLEAR
  116. RETURN
  117.